package com.bjpowernode.query;

import com.bjpowernode.validation.annotation.Password;
import jakarta.validation.constraints.*;
import lombok.Data;

@Data
public class UserQuery {

    /**
     * 用户id
     */
    private Integer id;

    /**
     * 登录账号
     */
    @NotBlank(message = "账号不能为空")
    private String loginAct;

    /**
     * 登录密码
     */
    //@NotBlank(message = "密码不能为空")
    //@Size(min = 6, max = 16, message = "密码长度为6-16位")
    @Password(min = 6, max = 16, message = "密码长度为6-16位") //密码有值就验证6-16位长度，密码没有值就不做验证
    private String loginPwd;

    /**
     * 用户姓名
     */
    @NotBlank(message = "姓名不能为空")
    @Pattern(regexp = "^[\\u4e00-\\u9fa5]+$", message = "姓名必须是中文汉字")
    private String name;

    /**
     * 用户手机
     */
    @NotBlank(message = "手机号码不能为空")
    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号码格式有误")
    private String phone;

    /**
     * 用户邮箱
     */
    @NotBlank(message = "邮箱不能为空")
    @Pattern(regexp = "^[\\w!#$%&'*+/=?`{|}~^-]+(?:\\.[\\w!#$%&'*+/=?`{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$", message = "邮箱格式有误")
    private String email;

    /**
     * 账户是否没有过期，0已过期 1正常
     */
    @NotNull(message = "账户是否未过期参数为空")
    private Integer accountNoExpired;

    /**
     * 密码是否没有过期，0已过期 1正常
     */
    @NotNull(message = "密码是否未过期参数为空")
    private Integer credentialsNoExpired;

    /**
     * 账号是否没有锁定，0已锁定 1正常
     */
    @NotNull(message = "账户是否未锁定参数为空")
    private Integer accountNoLocked;

    /**
     * 账号是否启用，0禁用 1启用
     */
    @NotNull(message = "账号是否已启用参数为空")
    private Integer accountEnabled;
}